import java.util.ArrayList;
import java.util.List;

/**
 * Instructor 类（指导教师）：
 * 约束：至少属于某个系；教授 1-3 门课程。
 */
public class Instructor {
    private String name;
    // 关联：至少属于某个系（1..* Department，但在本对象中只关联一个 Department）
    private Department department; 
    // 关联：教授 1-3 门课程 (多重性 1..3)
    private List<Subject> subjects; 

    public Instructor(String name, Department department) {
        this.name = name;
        this.department = department;
        this.subjects = new ArrayList<>();
    }
    
    // 确保教授 1-3 门课的业务逻辑
    public void addSubject(Subject subject) {
        if (subjects.size() < 3) { // 最大约束为 3
            this.subjects.add(subject);
        } else {
            System.out.println("警告: " + name + " 教授的课程已达上限 (3门)。");
        }
    }
    
    // 验证方法：确保满足最小约束
    public boolean isValid() {
        return subjects.size() >= 1; // 教授 1-3 门课
    }

    public String getName() {
        return name;
    }
    
    public List<Subject> getSubjects() {
        return subjects;
    }
}